#ifndef __MENU_H
#define __MENU_H

#include "system.h"

// 菜单项类型
typedef enum {
    MENU_ITEM_NORMAL = 0,
    MENU_ITEM_SUBMENU,
    MENU_ITEM_FUNCTION
} MenuItemType;

// 菜单项结构
typedef struct MenuItem {
    const char *text;          // 菜单项文本（支持中英文）
    MenuItemType type;         // 菜单项类型
    void (*callback)(void);    // 功能回调函数
    struct MenuItem *parent;   // 父菜单
    struct MenuItem *submenu;  // 子菜单
    uint8_t submenu_count;    // 子菜单项数量
} MenuItem;

// 菜单初始化
SystemStatus MENU_Init(void);

// 显示当前菜单
void MENU_Display(void);

// 菜单导航 - 上
void MENU_Up(void);

// 菜单导航 - 下
void MENU_Down(void);

// 菜单导航 - 确认
void MENU_Enter(void);

// 菜单导航 - 返回
void MENU_Back(void);

// 获取当前菜单项
MenuItem* MENU_GetCurrentItem(void);

// 设置菜单超时回调
void MENU_SetTimeoutCallback(void (*callback)(void));

// 菜单定时器更新
void MENU_TimerUpdate(void);

#endif // __MENU_H 